package cn.foodProject.Utils;

import android.content.Context;
import android.content.SharedPreferences;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;


public class SpUtils {
    private static SharedPreferences sp;
    private static final String TAG = "SpUtils";

    /**
     * 使用SharedPreferences存储对象的方法
     * @param type 标识
     * @param context 上下文
     * @param o 待存储的对象
     */
    public static void putBean(String type,Context context, Object o) {
        //若sp未实例化,则进行实例化
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }

        //获取Edit对象
        SharedPreferences.Editor editor = sp.edit();

        //实例化Gson,并将对象转换为json字符串
        Gson gson = new Gson();
        String s = gson.toJson(o);

        //将json字符串存储
        editor.putString(type, s);
        editor.commit();
    }

    /**
     * 用SharedPreferences取出对象的方法
     * @param context 上下文
     * @param type 标识
     * @param c 待转换的类,如User.class
     * @return 取出的对象
     */
    public static Object getBean(Context context,String type,Class c) {
        //若sp未实例化,则进行实例化
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }

        Gson gson = new Gson();
        String json = sp.getString(type, null);
        Object o = gson.fromJson(json, c);

        return o;
    }



    /**
     * 清除所有数据
     * @param context 上下文
     */
    public static void clearAll(Context context) {
        if (sp == null) {
            sp = context.getSharedPreferences("config", Context.MODE_PRIVATE);
        }
        sp.edit().clear().commit();
    }
}
